home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS12.ADF / AmigaBBS / opensysop (.txt) < prev    next >
AmigaBASIC Source Code  |  1986-08-05  |  17KB  |  457 lines

  1. ON BREAK GOSUB Teflon
  2. r$=CHR$(13):okp=1
  3. teetse=1
  4.  
  5. Main:
  6. GOSUB Sysop
  7. CHAIN "df1:Menus",20,ALL
  8.  
  9. Modem:
  10. IF rings=0 THEN OtherModem
  11. x=FRE(0)
  12. FOR j= 1 TO LEN(a$):p$=MID$(a$,j,1)
  13. PRINT p$;:PRINT#1,p$;:NEXT j
  14. a$="":p$="":RETURN
  15.  
  16. OtherModem:
  17. x=FRE(0)
  18. FOR j= 1 TO LEN(a$):p$=MID$(a$,j,1)
  19. PRINT p$;:NEXT j
  20. a$="":p$="":RETURN
  21.  
  22. Answers:
  23. t$="":t=0:i$="":ch$="":alter=0
  24. IF rings=0 THEN SomeAnswers
  25. WHILE 1 AND alter<1
  26.   WHILE LOC(1)<>0
  27.     ch$=INPUT$(1,1)
  28.     i$=i$+ch$
  29.     IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
  30.     IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN alter=3
  31.     a$=ch$:GOSUB Modem
  32.   WEND
  33.   ch$=INKEY$
  34.   i$=i$+ch$
  35.   a$=ch$:GOSUB Modem
  36.   IF ch$= CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN MoreAnswers
  37.   IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
  38.   ch$="":IF LEN(i$)=0 THEN GOSUB ModemCheck:IF okp<>1 THEN RETURN
  39. WEND
  40. IF i$<>"" THEN MoreAnswers
  41. SomeAnswers:
  42. ch$=INKEY$
  43. i$=i$+ch$
  44. a$=ch$:GOSUB Modem
  45. IF ch$= CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN MoreAnswers
  46. IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
  47. ch$="":IF LEN(i$)=0 THEN GOSUB ModemCheck:IF okp<>1 THEN RETURN
  48. GOTO SomeAnswers
  49. MoreAnswers:
  50. IF LEN(i$)=0 THEN GOSUB ModemCheck
  51. IF okp<>1 THEN RETURN
  52. IF i$="" THEN ch$="":GOTO Answers
  53. t$=i$:IF LEN(t$)>80 THEN t$=LEFT$(t$,78)+r$
  54. RETURN
  55.  
  56. SeqRead:
  57. ERASE ABCS$:DIM ABCS$(185)
  58. a$=r$+r$+"[>                                K Quits                               <]"+r$:GOSUB Modem
  59. OPEN "I", #3, file$
  60. ReadSeq:
  61. j=0:L=0:k=0:Countl=0
  62. WHILE NOT EOF(3)
  63.   x=FRE(0):j=j+1
  64.   LINE INPUT#3,ABCS$(j):ABCS$(j)=ABCS$(j)+r$
  65. WEND
  66. CLOSE#3:k=j:L=0:Detect=0
  67. WHILE L<k
  68.   L=L+1:a$=ABCS$(L):GOSUB Modem
  69.   CheckSeq:
  70.   t$="":t=0:i$="":ch$="":IF rings=0 THEN SomeCheckSeq
  71.   WHILE LOC(1)<>0
  72.     ch$=INPUT$(1,1):equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs)
  73.     i$=i$+ch$:equivs=0:a$=ch$:GOSUB Modem
  74.   WEND
  75.   IF i$<>"" THEN MoreCheckSeq
  76.   SomeCheckSeq:
  77.   ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem
  78.   OtherCheckSeq:
  79.   IF Detect=1 GOTO MoreCheckSeq
  80.   Countl=Countl+1:IF Countl=25 THEN a$=r$+"More (y,n,c)?":GOSUB A1
  81.   IF Countl=25 THEN MenS$=UCASE$(LEFT$(t$,1)):IF MenS$="N" THEN L=k+1
  82.   IF Countl=25 AND MenS$="Y" THEN Countl=0
  83.   IF Countl=25 AND MenS$="C" THEN Detect=1
  84.   IF Countl=25 AND Detect<>1 THEN Countl=0
  85.   MoreCheckSeq:
  86.   IF i$=CHR$(75) OR i$=CHR$(107) THEN L=k+1
  87. WEND
  88. ERASE ABCS$:DIM ABCS$(185):RETURN
  89.  
  90. A1:
  91. GOSUB Modem:ElfTime$=TIME$:GOSUB Answers:RETURN
  92.  
  93. CheckConTime:
  94. Contime$=TIME$:ChEntTime$=RIGHT$(Enttime$,5):Contime$=RIGHT$(Contime$,5)
  95. Contime=VAL(Contime$):Enttime=VAL(ChEntTime$)
  96. IF Contime-Enttime>30 AND Veru$="000" THEN okp=0:RETURN
  97. IF Contime-Enttime>45 AND Veru$="007" THEN okp=0:RETURN
  98. okp=1:RETURN
  99.  
  100. Sysop:
  101. IF okp<>1 THEN RETURN
  102. GOSUB CheckConTime:IF okp<>1 THEN RETURN
  103. a$=r$+"SysMain:":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
  104. IF MenS$="E" THEN EditFile
  105. IF MenS$="U" THEN UserMaint
  106. IF MenS$="T" THEN Terminal
  107. IF MenS$="X" THEN RETURN
  108. IF MenS$="?" THEN file$="df1:SysopMenu":GOSUB SeqRead:GOTO Sysop
  109. a$=r$+"No Such Command!"+r$:GOSUB Modem:GOTO Sysop
  110.  
  111. EditFile:
  112. IF okp<>1 THEN RETURN
  113. GOSUB CheckConTime:IF okp<>1 THEN RETURN
  114. a$=r$+"FEdit:":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
  115. IF MenS$="E" THEN EditDoc
  116. IF MenS$="D" THEN DeleteDoc
  117. IF MenS$="C" THEN CreateDoc
  118. IF MenS$="X" THEN Sysop
  119. IF MenS$="?" THEN file$="df1:EdSysMenu":GOSUB SeqRead:GOTO EditFile
  120. a$=r$+"No Such Command!"+r$:GOSUB Modem:GOTO Sysop
  121.  
  122. EditDoc:
  123. a$=r$+"FileName:":GOSUB A1:file$=LEFT$(t$,LEN(t$)-1):Ddt=0:GOSUB SeqRead
  124. RequestEditDoc:
  125. a$=r$+"S- Save  I- Insert Line  D- Delete Line  L- List  R- Replace  X- Exit:":GOSUB A1
  126. MenS$=UCASE$(LEFT$(t$,1))
  127. IF MenS$="S" THEN SaveEditDoc
  128. IF MenS$="I" THEN InsertEditDoc
  129. IF MenS$="D" THEN DeleteEditDoc
  130. IF MenS$="L" THEN ListEditDoc
  131. IF MenS$="R" THEN ReplaceEditDoc
  132. IF MenS$="X" THEN EditFile
  133. a$=r$+"No Such Command!":GOTO RequestEditDoc
  134.  
  135. SaveEditDoc:
  136. OPEN "O",#4, file$
  137. FOR j=1 TO Ddt
  138. PRINT#4,ABCS$(j)
  139. NEXT j
  140. CLOSE#4
  141. GOTO Sysop
  142.  
  143. InsertEditDoc:
  144. IF Ddt>=199 THEN a$=r$+"No room to insert.":GOSUB Modem:GOTO RequestEditDoc
  145. a$=r$+"Insert before which line:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN RequestEditDoc
  146. instln=VAL(t$)
  147. FOR j=Ddt TO instln STEP -1
  148. ABCS$(j+1)=ABCS$(j)
  149. NEXT j
  150. ABCS$(instln)="    "+r$:Ddt=Ddt+1
  151. GOTO RequestEditDoc
  152.  
  153. DeleteEditDoc:
  154. a$=r$+"Delete starting which line:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN RequestEditDoc
  155. stln=VAL(t$):IF stln<1 OR stln>Ddt THEN RequestEditDoc
  156. a$=r$+"Ending which line:":GOSUB A1:endtln=VAL(t$):IF endtln>Ddt THEN endtln=Ddt
  157. IF stln>endtln SWAP stln,endtln
  158. a$=r$+"Delete from"+STR$(stln)+" to"+STR$(endtln)+r$+"Are you sure? (Y or N):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
  159. IF MenS$="N" THEN RequestEditDoc
  160. FOR j=endtln+1 TO Ddt
  161. ABCS$(j-((endtln+1)-stln))=ABCS$(j)
  162. NEXT j
  163. Ddt=Ddt-((endtln+1)-stln)
  164. FOR j=Ddt TO Ddt+((endtln+1)-stln)
  165. ABCS$(j)="    "+r$
  166. NEXT j
  167. GOTO RequestEditDoc
  168.  
  169. ListEditDoc:
  170. a$=r$+"Line to start at:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN RequestEditDoc
  171. stln=VAL(t$):IF stln<1 OR stln>Ddt THEN RequestEditDoc
  172. a$=r$+"Line to stop at:":GOSUB A1:endtln=VAL(t$)+3:IF endtln<stln THEN RequestEditDoc
  173. IF endtln>Ddt THEN endtln=Ddt
  174. FOR L=stln TO endtln
  175. a$=r$+STR$(L)+":"+ABCS$(L):GOSUB Modem
  176. NEXT L
  177. GOTO RequestEditDoc
  178.  
  179. ReplaceEditDoc:
  180. a$=r$+"Replace which line:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN RequestEditDoc
  181. rplnn=VAL(t$):IF rplnn<1 OR rplnn>Ddt THEN RequestEditDoc
  182. a$=r$+"Replace:"+ABCS$(rplnn)+"With:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN RequestEditDoc
  183. Temprep$=t$
  184. a$=r$+"Replace:"+ABCS$(rplnn)+"With:"+Temprep$+"(Y or N):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
  185. IF MenS$="Y" THEN ABCS$(rplnn)=Temprep$
  186. GOTO RequestEditDoc
  187.  
  188. DeleteDoc:
  189. a$=r$+"File to delete:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN EditFile
  190. file$=LEFT$(t$,LEN(t$)-1)
  191. a$=r$+"Delete "+file$+r$+"Are you Sure? (Y or N):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
  192. IF MenS$="Y" THEN KILL file$
  193. GOTO EditFile
  194.  
  195. CreateDoc:
  196. a$=r$+"Filename:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN EditFile
  197. file$=LEFT$(t$,LEN(t$)-1)
  198. ABCS$(1)="Time:"+TIME$+" "+"Date:"+DATE$+r$
  199. a$=r$+"Subject:":GOSUB A1:Subject$=LEFT$(t$,LEN(t$)-1)
  200. IF LEN(Subject$)>30 THEN Subject$=LEFT$(Subject$,30)
  201. ABCS$(2)="Name:"+LEFT$(Name1$,LEN(Name1$)-1)+LEFT$(Name2$,LEN(Name2$)-1)+" Subject:"+Subject$+" UserID:"+UserID$
  202. ABCS$(3)=r$:Dzz=0:Ddt=3
  203. a$=r$+"Enter Text: [Max. 197 lines] /EX to Exit"+r$:GOSUB Modem
  204. WHILE Dzz<1
  205.   Ddt=Ddt+1
  206.   a$=STR$(Ddt-3)+":":GOSUB A1:ABCS$(Ddt)=t$
  207.   IF UCASE$(LEFT$(t$,3))="/EX" THEN Dzz=1:Ddt=Ddt-1
  208.   IF Ddt=199 THEN a$=r$+"Last Line!":GOSUB Modem
  209.   IF Ddt=200 THEN Dzz=1
  210. WEND
  211. QueryCreateFile:
  212. a$=r$+"S- Save  E- Edit  C- Continue:":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
  213. IF MenS$="S" THEN SaveEditDoc
  214. IF MenS$="E" THEN EditFile
  215. IF MenS$="C" THEN ContinueFile
  216. a$=r$+"No such command.":GOSUB Modem:GOTO QueryCreateFile
  217.  
  218. ContinueFile:
  219. IF Ddt>198 THEN a$=r$+"No Room!":GOTO QueryCreateFile
  220. Dzz=0
  221. a$=r$+"Enter Text: [Max. 197 lines] /EX to Exit"+r$:GOSUB Modem
  222. WHILE Dzz<1
  223.   Ddt=Ddt+1
  224.   a$=STR$(Ddt-3)+":":GOSUB A1:ABCS$(Ddt)=t$
  225.   IF UCASE$(LEFT$(t$,3))="/EX" THEN Dzz=1:Ddt=Ddt-1
  226.   IF Ddt=199 THEN a$=r$+"Last Line!":GOSUB Modem
  227.   IF Ddt=200 THEN Dzz=1
  228. WEND
  229. GOTO QueryCreateFile
  230.  
  231. UserMaint:
  232. a$=r$+"E- Edit  P- Print File  S- Scan  X- Exit:":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
  233. IF MenS$="E" THEN UserEdit
  234. IF MenS$="P" THEN UserFilePrint
  235. IF MenS$="S" THEN UserSearch
  236. IF MenS$="X" THEN CLOSE#4:GOTO Sysop
  237. a$=r$+"No such Command!":GOSUB Modem:GOTO UserMaint
  238.  
  239. UserEdit:
  240. a$=r$+"G- Get User  P- Print User  C- Change Option  S- Save User  X- Exit:":GOSUB A1
  241. MenS$=UCASE$(LEFT$(t$,1))
  242. IF MenS$="G" THEN GetUser
  243. IF MenS$="P" THEN GOSUB PrintUser:GOTO UserEdit
  244. IF MenS$="S" THEN SaveUser
  245. IF MenS$="C" THEN ChangeUser
  246. IF MenS$="X" THEN CLOSE#4:GOTO UserMaint
  247. GOTO UserEdit
  248.  
  249. GetUser:
  250. a$=r$+"Find by (N)ame or by (I)D :":GOSUB A1:IF LEFT$(t$,1)=CHR$(10) OR LEFT$(t$,1)=CHR$(13) THEN UserEdit
  251. MenS$=UCASE$(LEFT$(t$,1)):IF MenS$="I" THEN detedt=1:GOTO MoreGetUser
  252. detedt=0
  253. a$="Enter User's First Name:":GOSUB A1:GetName1$=UCASE$(LEFT$(t$,LEN(t$)-1)):IF LEN(Name1$)>9 THEN Name1$=LEFT$(Name1$,9)
  254. a$=r$+"Enter User's Last Name:":GOSUB A1:GetName2$=UCASE$(LEFT$(t$,LEN(t$)-1)):IF LEN(Name2$)>15 THEN Name2$=LEFT$(Name2$,15)
  255. UsernaMe$=GetName1$+" "+GetName2$+"=":UsernaMe=LEN(UsernaMe$):Ddt=0:Dch=0
  256. WHILE Ddt<1
  257.   Dch=Dch+1:uil$=STR$(Dch):uil$=RIGHT$(uil$,1)
  258.   OPEN "I",#3,"df1:Storehouse"+uil$
  259.   Dxq=0:Lmn=0:Dab=0
  260.   WHILE NOT EOF(3)
  261.     Dxq=Dxq+1
  262.     LINE INPUT#3, ABCS$(Dxq)
  263.   WEND
  264.   Dzz=0
  265.   WHILE Lmn<1
  266.     Dzz=Dzz+1
  267.     IF UsernaMe$=LEFT$(ABCS$(Dzz),UsernaMe) THEN Lmn=5:Dab=Dzz
  268.     IF Dzz=Dxq AND Lmn<>5 THEN Lmn=2
  269.   WEND
  270.   IF Lmn=5 THEN Ddt=5:GetUserID$=RIGHT$(ABCS$(Dab),LEN(ABCS$(Dab))-UsernaMe)
  271.   IF Lmn=2 AND Dch=5 THEN Ddt=3
  272.   CLOSE#3
  273. WEND
  274. IF Ddt=3 THEN a$=r$+"No Such User.":GOSUB Modem:GOTO UserEdit
  275. GetUserID=VAL(GetUserID$)
  276. MoreGetUser:
  277. IF detedt=1 THEN a$=r$+"Enter User's ID:":GOSUB A1:IF LEFT$(t$,1)=CHR$(10) OR LEFT$(t$,1)=CHR$(13) THEN UserEdit
  278. IF detedt=1 THEN GetUserID$=LEFT$(t$,LEN(t$)-1):GetUserID=VAL(t$)
  279. CLOSE#4:OPEN "R", #4, "df1:USER",120
  280. FIELD #4, 1 AS check$,9 AS N1$,15 AS N2$,10 AS Co$,15 AS Adr$,10 AS CI$,10 AS STA$,3 AS AG$,9 AS PAS$,3 AS B1$,3 AS B2$,3 AS B3$,3 AS B4$,3 AS B5$,3 AS B6$,3 AS B7$,3 AS B8$,3 AS B9$,1 AS EM1$,1 AS EM2$,1 AS EM3$,1 AS EM4$,1 AS EM5$,3 AS Valu$
  281. FIELD #4, 117 AS dump$,1 AS Vte1$,1 AS Vte2$,1 AS Vte3$
  282. GET#4, GetUserID
  283. GetName1$=N1$:GetName2$=N2$:GetAddr$=Adr$:GetComp$=Co$:GetCity$=CI$
  284. GetState$=STA$:GetAge$=AG$:GetPass$=PAS$:GetChk$=check$:GetVaru$=Valu$
  285. GetB1$=B1$:GetB2$=B2$:GetB3$=B3$:GetB4$=B4$:GetB5$=B5$:GetB6$=B6$:GetB7$=B7$:GetB8$=B8$:GetB9$=B9$
  286. GetE1$=EM1$:GetE2$=EM2$:GetE3$=EM3$:GetE4$=EM4$:GetE5$=EM5$
  287. GetVte1$=Vte1$:GetVte2$=Vte2$:GetVte3$=Vte3$
  288. CLOSE#4
  289. GOSUB ShowUserInfo:GOTO UserEdit
  290.  
  291. ShowUserInfo:
  292. ewan$=SPACE$(5)
  293. a$=r$+"1)First Name:"+GetName1$+"2)Last Name:"+GetName2$+r$+"3)Address:"+GetAddr$:GOSUB Modem
  294. a$=r$+"4)City:"+GetCity$+r$+"5)State:"+GetState$+r$+"6)Computer:"+GetComp$:GOSUB Modem
  295. a$=r$+"7)Age:"+GetAge$+r$+"8)Password:"+GetPass$+r$+"9)Valid. Level:"+GetVaru$:GOSUB Modem
  296. a$=r$+"10)HM Board1:"+GetB1$+ewan$+"11)HM Board2:"+GetB2$+ewan$+"12)HM Board3:"+GetB3$:GOSUB Modem
  297. a$=r$+"13)HM Board4:"+GetB4$+ewan$+"14)HM Board5:"+GetB5$+ewan$+"15)HM Board6:"+GetB6$:GOSUB Modem
  298. a$=r$+"16)HM Board7:"+GetB7$+ewan$+"17)HM Board8:"+GetB8$+ewan$+"18)HM Board9:"+GetB9$:GOSUB Modem
  299. a$=r$+"19)Mail1:"+GetE1$+ewan$+"20)Mail2:"+GetE2$+ewan$+"21)Mail3:"+GetE3$+ewan$+"22)Mail4:"+GetE4$+ewan$+"23)Mail5:"+GetE5$:GOSUB Modem
  300. a$=r$+"24)Check$:"+GetChk$:GOSUB Modem
  301. a$=r$+"25)Vote1:"+GetVte1$+ewan$+"26)Vote2:"+GetVte2$+ewan$+"27)Vote3:"+GetVte3$:GOSUB Modem
  302. RETURN
  303.  
  304. PrintUser:
  305. ewan$=SPACE$(5)
  306. OPEN "O", #5,"Lpt1:"
  307. a$=r$+"1)First Name:"+GetName1$+" "+"2)Last Name:"+GetName2$+CHR$(10)+"3)Address:"+GetAddr$+CHR$(10)
  308. PRINT#5,a$
  309. a$=r$+"4)City:"+GetCity$+CHR$(10)+"5)State:"+GetState$+CHR$(10)+"6)Computer:"+GetComp$
  310. PRINT#5,a$
  311. a$=r$+"7)Age:"+GetAge$+CHR$(10)+"8)Password:"+GetPass$+CHR$(10)+"9)Valid. Level:"+GetVaru$
  312. PRINT#5,a$
  313. a$=r$+"10)HM Board1:"+GetB1$+ewan$+"11)HM Board2:"+GetB2$+ewan$+"12)HM Board3:"+GetB3$
  314. PRINT#5,a$
  315. a$=r$+"13)HM Board4:"+GetB4$+ewan$+"14)HM Board5:"+GetB5$+ewan$+"15)HM Board6:"+GetB6$
  316. PRINT#5,a$
  317. a$=r$+"16)HM Board7:"+GetB7$+ewan$+"17)HM Board8:"+GetB8$+ewan$+"18)HM Board9:"+GetB9$
  318. PRINT#5,a$
  319. a$=r$+"19)Mail1:"+GetE1$+ewan$+"20)Mail2:"+GetE2$+ewan$+"21)Mail3:"+GetE3$+ewan$+"22)Mail4:"+GetE4$+ewan$+"23)Mail5:"+GetE5$
  320. PRINT#5,a$
  321. a$=r$+"25)Vote1:"+GetVte1$+ewan$+"26)Vote2:"+GetVte2$+ewan$+"27)Vote3:"+GetVte3$
  322. PRINT#5,a$
  323. CLOSE#5:RETURN
  324.  
  325. ChangeUser:
  326. a$=r$+"Change which option (1-27):":GOSUB A1:IF LEFT$(t$,1)=CHR$(10) OR LEFT$(t$,1)=CHR$(13) THEN UserEdit
  327. lable=VAL(t$):IF lable<1 OR lable>27 THEN UserEdit
  328. IF lable=9 THEN ValidChangeUser
  329. a$=r$+"Change to:":GOSUB A1:IF LEFT$(t$,1)=CHR$(10) OR LEFT$(t$,1)=CHR$(13) THEN UserEdit
  330. MoreChangeUser:
  331. IF lable=1 THEN GetName1$=UCASE$(LEFT$(t$,LEN(t$)-1))
  332. IF lable=2 THEN GetName2$=UCASE$(LEFT$(t$,LEN(t$)-1))
  333. IF lable=3 THEN GetAddr$=UCASE$(LEFT$(t$,LEN(t$)-1))
  334. IF lable=4 THEN GetCity$=UCASE$(LEFT$(t$,LEN(t$)-1))
  335. IF lable=5 THEN GetState$=UCASE$(LEFT$(t$,LEN(t$)-1))
  336. IF lable=6 THEN GetComp$=UCASE$(LEFT$(t$,LEN(t$)-1))
  337. IF lable=7 THEN GetAge$=LEFT$(t$,LEN(t$)-1)
  338. IF lable=8 THEN GetPass$=UCASE$(LEFT$(t$,LEN(t$)-1))
  339. IF lable=10 THEN GetB1$=UCASE$(LEFT$(t$,LEN(t$)-1))
  340. IF lable=11 THEN GetB2$=UCASE$(LEFT$(t$,LEN(t$)-1))
  341. IF lable=12 THEN GetB3$=UCASE$(LEFT$(t$,LEN(t$)-1))
  342. IF lable=13 THEN GetB4$=UCASE$(LEFT$(t$,LEN(t$)-1))
  343. IF lable=14 THEN GetB5$=UCASE$(LEFT$(t$,LEN(t$)-1))
  344. IF lable=15 THEN GetB6$=UCASE$(LEFT$(t$,LEN(t$)-1))
  345. IF lable=16 THEN GetB7$=UCASE$(LEFT$(t$,LEN(t$)-1))
  346. IF lable=17 THEN GetB8$=UCASE$(LEFT$(t$,LEN(t$)-1))
  347. IF lable=18 THEN GetB9$=UCASE$(LEFT$(t$,LEN(t$)-1))
  348. IF lable=19 THEN GetE1$=UCASE$(LEFT$(t$,LEN(t$)-1))
  349. IF lable=20 THEN GetE2$=UCASE$(LEFT$(t$,LEN(t$)-1))
  350. IF lable=21 THEN GetE3$=UCASE$(LEFT$(t$,LEN(t$)-1))
  351. IF lable=22 THEN GetE4$=UCASE$(LEFT$(t$,LEN(t$)-1))
  352. IF lable=23 THEN GetE5$=UCASE$(LEFT$(t$,LEN(t$)-1))
  353. IF lable=24 THEN GetChk$=UCASE$(LEFT$(t$,LEN(t$)-1))
  354. IF lable=25 THEN GetVte1$=LEFT$(t$,1)
  355. IF lable=26 THEN GetVte2$=LEFT$(t$,1)
  356. IF lable=27 THEN GetVte3$=LEFT$(t$,1)
  357. GOSUB ShowUserInfo:GOTO UserEdit
  358.  
  359. ValidChangeUser:
  360. a$=r$+"1)New User:000":GOSUB Modem
  361. a$=r$+"2)Validated User:007":GOSUB Modem
  362. a$=r$+"3)Assistant Sysop:014":GOSUB Modem
  363. a$=r$+"4)Sysop:021":GOSUB Modem
  364. a$=r$+" Which Level (1-4):":GOSUB A1:MenS$=LEFT$(t$,1)
  365. IF MenS$="1" THEN GetVaru$="000":GOSUB ShowUserInfo:GOTO UserEdit
  366. IF MenS$="2" THEN GetVaru$="007":GOSUB ShowUserInfo:GOTO UserEdit
  367. IF MenS$="3" THEN GetVaru$="014":GOSUB ShowUserInfo:GOTO UserEdit
  368. IF MenS$="4" THEN GetVaru$="021":GOSUB ShowUserInfo:GOTO UserEdit
  369. GOTO ValidChangeUser
  370.  
  371. SaveUser:
  372. CLOSE#4:OPEN "R", #4, "df1:USER",120
  373. FIELD #4, 1 AS check$,9 AS N1$,15 AS N2$,10 AS Co$,15 AS Adr$,10 AS CI$,10 AS STA$,3 AS AG$,9 AS PAS$,3 AS B1$,3 AS B2$,3 AS B3$,3 AS B4$,3 AS B5$,3 AS B6$,3 AS B7$,3 AS B8$,3 AS B9$,1 AS EM1$,1 AS EM2$,1 AS EM3$,1 AS EM4$,1 AS EM5$,3 AS Valu$
  374. FIELD #4, 117 AS dump$,1 AS Vte1$,1 AS Vte2$,1 AS Vte3$
  375. GET#4, GetUserID
  376. LSET N1$=GetName1$:LSET N2$=GetName2$:LSET Adr$=GetAddr$
  377. LSET Co$=GetComp$:LSET CI$=GetCity$:LSET STA$=GetState$
  378. LSET AG$=GetAge$:LSET PAS$=GetPass$:LSET Valu$=GetVaru$
  379. LSET B1$=GetB1$:LSET B2$=GetB2$:LSET B3$=GetB3$
  380. LSET B4$=GetB4$:LSET B5$=GetB5$:LSET B6$=GetB6$
  381. LSET B7$=GetB7$:LSET B8$=GetB8$:LSET B9$=GetB9$
  382. LSET EM1$=GetE1$:LSET EM2$=GetE2$:LSET EM3$=GetE3$:LSET EM4$=GetE4$
  383. LSET EM5$=GetE5$:LSET check$=GetChk$
  384. LSET Vte1$=GetVte1$:LSET Vte2$=GetVte2$:LSET Vte3$=GetVte3$
  385. PUT#4,GetUserID
  386. CLOSE#5:CLOSE#4
  387. GOTO UserEdit
  388.  
  389. UserFilePrint: 
  390. CLOSE#4:OPEN "R", #4, "df1:USER",120
  391. FIELD #4, 1 AS check$,9 AS N1$,15 AS N2$,10 AS Co$,15 AS Adr$,10 AS CI$,10 AS STA$,3 AS AG$,9 AS PAS$,3 AS B1$,3 AS B2$,3 AS B3$,3 AS B4$,3 AS B5$,3 AS B6$,3 AS B7$,3 AS B8$,3 AS B9$,1 AS EM1$,1 AS EM2$,1 AS EM3$,1 AS EM4$,1 AS EM5$,3 AS Valu$
  392. FIELD #4, 117 AS dump$,1 AS Vte1$,1 AS Vte2$,1 AS Vte3$
  393. Dch=0:Ddd=0
  394. WHILE Dch<1
  395.   Ddd=Ddd+1
  396.   GET#4, Ddd
  397.   IF check$<>"P" THEN Dch=1
  398.   GetName1$=N1$:GetName2$=N2$:GetAddr$=Adr$:GetComp$=Co$:GetCity$=CI$
  399.   GetState$=STA$:GetAge$=AG$:GetPass$=PAS$:GetChk$=check$:GetVaru$=Valu$
  400.   GetB1$=B1$:GetB2$=B2$:GetB3$=B3$:GetB4$=B4$:GetB5$=B5$:GetB6$=B6$:GetB7$=B7$:GetB8$=B8$:GetB9$=B9$
  401.   GetE1$=E1$:GetE2$=E2$:GetE3$=E3$:GetE4$=E4$:GetE5$=E5$
  402.   GetVte1$=Vte1$:GetVte2$=Vte2$:GetVte3$=Vte3$
  403.   GOSUB PrintUser
  404. WEND
  405. CLOSE#5:CLOSE#4
  406. GOTO UserMaint
  407.  
  408. UserSearch:
  409. a$=r$+"Search for:":GOSUB Modem
  410. a$=r$+"1)First Name     2)Last Name     3)Computer Type":GOSUB Modem
  411. a$=r$+"4)City           5)State":GOSUB A1:IF LEFT$(t$,1)=CHR$(10) OR IF LEFT$(t$,1)=CHR$(13) THEN UserMaint
  412. lable=VAL(t$):IF lable<1 OR lable>5 THEN UserMaint
  413. a$=r$+"Enter Search String:":GOSUB A1:SearStr$=UCASE$(LEFT$(t$,LEN(t$)-1))
  414. CLOSE#4:OPEN "R", #4, "df1:USER",120
  415. FIELD #4, 1 AS check$,9 AS N1$,15 AS N2$,10 AS Co$,15 AS Adr$,10 AS CI$,10 AS STA$,3 AS AG$,9 AS PAS$,3 AS B1$,3 AS B2$,3 AS B3$,3 AS B4$,3 AS B5$,3 AS B6$,3 AS B7$,3 AS B8$,3 AS B9$,1 AS EM1$,1 AS EM2$,1 AS EM3$,1 AS EM4$,1 AS EM5$,3 AS Valu$
  416. FIELD #4, 117 AS dump$,1 AS Vte1$,1 AS Vte2$,1 AS Vte3$
  417. Dch=0:Ddd=0
  418. WHILE Dch<>1
  419.   Ddd=Ddd+1
  420.   GET#4, Ddd
  421.   IF check$<>"P" THEN Dch=1
  422.   GetName1$=N1$:GetName2$=N2$:GetAddr$=Adr$:GetComp$=Co$:GetCity$=CI$
  423.   GetState$=STA$:GetAge$=AG$:GetPass$+PAS$:GetChk$=check$:GetVaru$=Valu$
  424.   GetB1$=B1$:GetB2$=B2$:GetB3$=B3$:GetB4$=B4$:GetB5$=B5$:GetB6$=B6$:GetB7$=B7$:GetB8$=B8$:GetB9$=B9$
  425.   GetE1$=E1$:GetE2$=E2$:GetE3$=E3$:GetE4$=E4$:GetE5$=E5$
  426.   GetVte1$=Vte1$:GetVte2$=Vte2$:GetVte3$=Vte3$
  427.   IF lable=1 AND SearStr$=LEFT$(N1$,LEN(SearStr$) THEN GOSUB PrintUser
  428.   IF lable=2 AND SearStr$=LEFT$(N2$,LEN(SearStr$) THEN GOSUB PrintUser
  429.   IF lable=3 AND SearStr$=LEFT$(Co$,LEN(SearStr$) THEN GOSUB PrintUser
  430.   IF lable=4 AND SearStr$=LEFT$(CI$,LEN(SearStr$) THEN GOSUB PrintUser
  431.   IF lable=5 AND SearStr$=LEFT$(STA$,LEN(SearStr$) THEN GOSUB PrintUser
  432. WEND
  433. CLOSE#5:CLOSE#4
  434. GOTO UserMaint
  435.  
  436. Terminal:
  437. ltomr=0:teetse=0
  438. WHILE ltomr<1
  439.   WHILE LOC(1)<>0
  440.     PRINT INPUT$(1,1);
  441.   WEND
  442.   i$=INKEY$
  443.   IF i$<>"" THEN PRINT #1,i$;
  444. WEND
  445. GOTO Sysop
  446.  
  447. Teflon:
  448. IF teetse=1 THEN a$=r$+"Sorry, not allowed.":GOSUB Modem:RETURN
  449. IF teetse=0 THEN ltomr=1:teetse=1:RETURN
  450. RETURN
  451.  
  452. ModemCheck:
  453. Canltime$=TIME$:Canltime=VAL(RIGHT$(Canltime$,5)):ElfTime=VAL(RIGHT$(ElfTime$,5))
  454. IF ABS(Canltime-ElfTime)>1 THEN okp=0:RETURN
  455. okp=1:RETURN
  456.  
  457.